home *** CD-ROM | disk | FTP | other *** search
- Path: seismo!uunet!rs
- From: rs@uunet.UU.NET (Rich Salz)
- Newsgroups: comp.sources.unix
- Subject: v10i006: Crypt Breaker's Workbench, Part06/11
- Message-ID: <388@uunet.UU.NET>
- Date: 19 Jun 87 03:09:15 GMT
- Organization: UUNET Communications Services, Arlington, VA
- Lines: 1520
- Approved: rs@uunet.uu.net
-
- Submitted by: Robert W. Baldwin <BALDWIN@XX.LCS.MIT.EDU>
- Mod.sources: Volume 10, Issue 6
- Archive-name: cbw/Part06
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 6 (of 11)."
- # Contents: foo.perm lpair.c test1.perm
- # Wrapped by rs@uunet on Wed Jun 17 18:17:20 1987
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f foo.perm -a "${1}" != "-c" ; then
- echo shar: Will not over-write existing file \"foo.perm\"
- else
- echo shar: Extracting \"foo.perm\" \(16800 characters\)
- sed "s/^X//" >foo.perm <<'END_OF_foo.perm'
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1
- X 96 -1 124 223 97 19 -1 13 43 44
- X -1 38 231 7 -1 207 179 134 133 5
- X -1 -1 48 160 152 93 162 -1 191 -1
- X 65 103 183 -1 -1 -1 243 242 11 180
- X 87 173 154 8 9 99 112 58 22 108
- X199 95 77 66 -1 62 128 190 47 79
- X215 109 55 -1 73 30 53 178 214 82
- X201 138 206 64 240 -1 228 52 140 59
- X197 -1 69 203 -1 111 137 40 -1 -1
- X -1 195 212 25 -1 51 0 4 251 45
- X -1 122 148 31 227 234 167 202 49 61
- X219 85 46 246 -1 -1 -1 254 211 249
- X144 -1 101 218 2 150 186 -1 56 -1
- X -1 247 164 18 17 -1 -1 86 71 -1
- X 78 -1 -1 222 120 216 226 158 102 189
- X125 225 24 -1 42 159 221 188 147 155
- X 23 210 26 -1 132 232 184 106 -1 -1
- X -1 196 253 41 204 -1 -1 235 67 16
- X 39 192 -1 32 166 -1 126 -1 157 149
- X 57 28 181 -1 241 91 171 80 -1 50
- X -1 70 107 83 174 -1 72 15 -1 233
- X161 118 92 244 68 60 145 -1 123 110
- X237 156 143 3 -1 151 146 104 76 239
- X -1 12 165 209 105 177 -1 220 -1 229
- X 74 194 37 36 213 -1 113 131 -1 119
- X -1 98 -1 172 117 -1
- X 20 122 118 119 -1 229 158 -1 223 -1
- X215 -1 197 249 82 126 237 23 87 93
- X 0 -1 252 17 -1 -1 -1 225 -1 163
- X 52 171 -1 155 214 -1 84 -1 216 85
- X 45 152 -1 181 -1 40 241 235 142 210
- X -1 69 30 83 99 134 212 253 70 144
- X -1 -1 234 -1 132 250 173 114 95 51
- X 58 -1 73 72 175 168 211 -1 92 169
- X176 166 14 53 36 39 -1 18 148 117
- X129 255 78 19 110 68 151 154 101 54
- X244 98 242 147 227 204 128 203 188 254
- X 94 217 170 251 67 231 -1 89 2 3
- X206 146 1 183 -1 209 15 150 106 90
- X184 159 64 141 55 238 195 -1 162 205
- X245 133 48 -1 59 165 121 103 88 -1
- X127 96 41 -1 97 33 -1 -1 6 131
- X187 194 138 29 167 145 81 164 75 79
- X112 31 178 66 -1 74 80 -1 172 -1
- X -1 43 224 123 130 236 -1 160 108 246
- X192 230 190 222 161 136 -1 12 200 213
- X198 239 248 107 105 139 120 -1 247 125
- X 49 76 56 199 34 10 38 111 233 -1
- X -1 -1 193 8 182 27 -1 104 240 5
- X191 115 -1 218 62 47 185 16 135 201
- X228 46 102 -1 100 140 189 208 202 13
- X 65 113 22 57 109 91
- X 90 49 26 132 156 140 212 129 -1 122
- X198 -1 97 148 38 79 25 154 80 -1
- X214 216 248 184 161 16 2 107 66 168
- X 33 -1 195 30 -1 -1 65 -1 14 84
- X222 -1 123 53 136 47 69 45 -1 1
- X125 -1 134 43 -1 102 145 126 238 194
- X 78 232 138 246 224 36 28 225 -1 46
- X130 215 120 188 119 105 231 209 60 15
- X 18 87 185 176 39 160 182 81 -1 158
- X 0 151 235 192 183 200 118 12 174 -1
- X106 -1 55 -1 -1 75 100 27 249 187
- X163 242 -1 230 254 205 179 190 96 74
- X 72 -1 9 42 241 50 57 228 142 7
- X 70 206 3 149 52 227 44 220 62 245
- X 5 221 128 186 244 56 204 -1 13 133
- X -1 91 197 165 17 -1 4 180 89 -1
- X 85 24 193 110 199 153 -1 -1 29 255
- X177 247 226 -1 98 252 83 170 237 116
- X157 191 86 94 23 82 143 109 73 219
- X117 181 93 162 59 32 -1 152 10 164
- X 95 -1 250 239 146 115 131 -1 217 77
- X234 -1 6 251 20 71 21 208 -1 189
- X137 141 40 253 64 67 172 135 127 240
- X113 76 61 -1 210 92 -1 178 58 203
- X229 124 111 -1 144 139 63 171 22 108
- X202 213 175 223 114 169
- X 60 -1 26 79 203 204 122 -1 15 97
- X -1 238 133 33 159 8 165 145 27 191
- X192 69 250 -1 -1 183 2 18 50 65
- X218 57 143 13 -1 -1 -1 93 116 213
- X -1 199 -1 171 109 74 -1 177 56 -1
- X 28 -1 -1 196 -1 227 48 31 80 221
- X 0 248 202 103 233 29 140 -1 170 21
- X216 164 137 190 45 189 -1 193 188 3
- X 58 160 155 181 176 -1 186 104 111 225
- X198 125 -1 37 -1 -1 252 9 231 223
- X169 -1 255 63 87 154 -1 -1 152 44
- X201 88 -1 -1 179 118 38 -1 115 161
- X247 123 6 121 187 91 -1 240 241 239
- X197 207 -1 12 -1 185 138 72 136 -1
- X 66 -1 234 32 150 17 254 -1 -1 226
- X144 -1 108 -1 105 82 228 172 173 14
- X 81 119 -1 -1 71 16 208 246 242 100
- X 68 43 157 158 -1 -1 84 47 229 114
- X -1 83 -1 25 230 135 86 124 78 75
- X 73 19 20 77 245 -1 53 130 90 41
- X210 110 62 4 5 244 211 131 166 219
- X200 206 220 39 -1 -1 70 -1 30 209
- X212 59 -1 99 232 89 149 55 156 178
- X184 98 224 64 142 236 235 -1 11 129
- X127 128 168 249 205 194 167 120 61 243
- X 22 -1 96 -1 146 102
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1
- END_OF_foo.perm
- if test 16800 -ne `wc -c <foo.perm`; then
- echo shar: \"foo.perm\" unpacked with wrong size!
- fi
- # end of overwriting check
- fi
- if test -f lpair.c -a "${1}" != "-c" ; then
- echo shar: Will not over-write existing file \"lpair.c\"
- else
- echo shar: Extracting \"lpair.c\" \(14095 characters\)
- sed "s/^X//" >lpair.c <<'END_OF_lpair.c'
- X/*
- X * Letter pair and equivalence class guessing.
- X *
- X * Bob Baldwin, May 1985.
- X */
- X
- X#include <stdio.h>
- X#include <math.h>
- X#include "window.h"
- X#include "terminal.h"
- X#include "layout.h"
- X#include "specs.h"
- X#include "cipher.h"
- X
- X
- X#define DEBUG FALSE
- X#define AUTOREPEAT 1 /* Number of times to repeat guess loop. */
- X
- X#define LPBLABEL1 "Bigram guess, level %6.3f, prob %6.3f -- Wait"
- X#define LPBLABEL2 "Bigram guess, level %6.3f, prob %6.3f -- Done"
- X#define LPBHELP "F3 enters guess, ^G undoes it."
- X
- X
- Xextern char mcbuf[];
- Xextern ecinfo gecinfo;
- Xextern ec_init();
- Xextern lpbdraw(), lpbfirst(), lpbenter(), lpbundo();
- X
- X/* Gloabal State. */
- Xkeyer lpbktab[] = {
- X {CACCEPT, lpbenter},
- X {CUNDO, lpbundo},
- X {CGO_UP, jogup},
- X {CGO_DOWN, jogdown},
- X {CGO_LEFT, jogleft},
- X {CGO_RIGHT, jogright},
- X {0, NULL},
- X};
- X
- X/* Routine invoked by user to put up the letter pair equivalence class
- X * guessing window.
- X * The window is drawn empty, and then filled in with the guess.
- X * Return NULL if command completes ok.
- X */
- Xchar *lpbguess(str)
- Xchar *str; /* Command line */
- X{
- X ecinfo *ecbi;
- X int i;
- X gwindow *ecb;
- X float lp_accept_level, lp_prob_cutoff;
- X
- X ecb = &gbstore;
- X ecbi = &gecinfo;
- X lp_init(mcbuf, refperm(dbsgetblk(&dbstore)), ecbi);
- X
- X if ((i = sscanf(str, "%*[^:]: %f %*[^:]: %f",
- X &lp_accept_level, &lp_prob_cutoff)) != 2) {
- X return("Could not parameters.");
- X }
- X
- X gbsswitch(ecb, ((char *) ecbi), lpbktab, lpbfirst, wl_noop, lpbdraw);
- X
- X sprintf(statmsg, LPBLABEL1, lp_accept_level, lp_prob_cutoff);
- X gblset(&gblabel, statmsg);
- X gbsclear(ecb);
- X fflush(stdout);
- X
- X lp_autoguess(ecbi, lp_accept_level);
- X decode(ecbi->ciphertext, ecbi->plaintext, ecbi->perm);
- X
- X sprintf(statmsg, LPBLABEL2, lp_accept_level, lp_prob_cutoff);
- X gblset(&gblabel, statmsg);
- X lpbdraw(ecb);
- X
- X return(NULL);
- X}
- X
- X
- X/* (re) Draw the window.
- X */
- Xlpbdraw(ecb)
- Xgwindow *ecb;
- X{
- X int i;
- X int row, col;
- X ecinfo *ecbi;
- X
- X ecbi = ((ecinfo *) ecb->wprivate);
- X row = 1;
- X col = 1;
- X
- X for (i = 0 ; i < BLOCKSIZE ; i++) {
- X if (i%LINELEN == 0) {
- X wl_setcur(ecb, gbspos2row(i), gbspos2col(i));
- X }
- X plnchars(1, char2sym(ecbi->plaintext[i]));
- X }
- X
- X for (i = gbspos2row(BLOCKSIZE) ; i <= GBHEIGHT ; i++) {
- X wl_setcur(ecb, i, 1);
- X plnchars(LINELEN, ' ');
- X }
- X
- X for (i = 1 ; i <= GBHEIGHT ; i++) {
- X wl_setcur(ecb, i, LINELEN+1);
- X plnchars(ecb->wwidth - LINELEN, ' ');
- X }
- X
- X wl_setcur(ecb, row, col);
- X}
- X
- X
- X/* First time cursor enters window.
- X */
- Xlpbfirst(ecb, row, col)
- Xgwindow *ecb;
- Xint row, col;
- X{
- X usrhelp(&user, LPBHELP);
- X wl_setcur(ecb, row, col);
- X}
- X
- X
- X/* Enter the guess into the decryption block.
- X */
- Xlpbenter(ecb)
- Xgwindow *ecb;
- X{
- X ecinfo *ecbi;
- X
- X ecbi = ((ecinfo *) ecb->wprivate);
- X dbsmerge(&dbstore, ecbi->perm);
- X wl_rcursor(ecb);
- X}
- X
- X
- X/* Undo the last guess.
- X */
- Xlpbundo(ecb)
- Xgwindow *ecb;
- X{
- X ecinfo *ecbi;
- X
- X ecbi = ((ecinfo *) ecb->wprivate);
- X dbsundo(&dbstore);
- X wl_rcursor(ecb);
- X}
- X
- X
- X
- X/* Guess at a block using letter pair statistics.
- X * The parameter accept_level is the minimum ratio (of estmated prob
- X * that the guess is right over estimate prob that some other guess
- X * is right) needed to accept a guess.
- X * The parameter prob_cutoff is the minimum probability (density) that
- X * the guess is right. This parameter comes into play when there is one
- X * guess which looks much better than the rest (i.e., has a high ratio),
- X * but in fact all the guesses look pretty bad, so the program should
- X * avoid picking one.
- X * Modfies eci.
- X */
- Xlp_autoguess(eci, accept_level, prob_cutoff)
- Xreg ecinfo *eci;
- X float accept_level;
- X float prob_cutoff;
- X{
- X int i;
- Xreg int c;
- X int ntried;
- Xreg int classpos;
- X int *permp;
- X int repeat;
- X
- Xfor(repeat = 0 ; repeat < AUTOREPEAT ; repeat++) {
- X ntried = 0;
- X for (ntried = 0 ; ntried < BLOCKSIZE ; ntried++) {
- X classpos = lp_best_pos(eci, 2);
- X if (classpos == NONE)
- X break;
- X c = lp_best_char(eci, classpos,
- X accept_level - ((repeat == 0) ? 0.0 : 0.0),
- X prob_cutoff);
- X if (c != NONE) {
- X lp_accept(eci, classpos, c);
- X }
- X }
- X#if (AUTOREPEAT > 1)
- X for (i = 0 ; i < eci->nclasses ; i++) {
- X eci->classlist[i].changed = TRUE;
- X }
- X#endif
- X }
- X}
- X
- X
- X/* Score a guess using letter pair statistics.
- X * Bigger scores are better scores. They range from 0 to 1.
- X * A score of zero means the choice is not possible.
- X * The result is the probability density that the guess is correct.
- X * Actually, the resulting score is the product of the prob densities
- X * of the first and second order statistics.
- X */
- Xfloat lp_cscore(gsi)
- Xreg gsinfo *gsi;
- X{
- X extern float score2_scale, score1_scale;
- X float score1, score2;
- Xreg float sdev1, sdev2; /* Standard Deviation for 1st and 2nd stats. */
- X int ccount;
- X
- X for (ccount = 0 ; gsi->cpos[ccount] != NONE ; ccount++);
- X
- X sdev1 = gsi_1score(gsi);
- X if (sdev1 < 0.0) return(0.0);
- X score1 = fexp(sdev1);
- X score1 = (score1 * isqrt[ccount]) / score1_scale;
- X
- X sdev2 = gsi_2score(gsi);
- X if (sdev2 < 0.0) return(0.0);
- X score2 = fexp(sdev2);
- X score2 = (score2 * isqrt[ccount]) / score2_scale;
- X
- X return(score1 * score2);
- X}
- X
- X
- X/* Select best plaintext value for a ciphertext equiv class.
- X * The class is identified by the position in the block of one
- X * of the characters in the class. The plaintext value for
- X * an entire class can be specified by the plaintext value of
- X * one of its members. This routine returns the best plaintext
- X * value for the ciphertext character at position firstpos.
- X * If there is not a clear best value, NONE is returned.
- X */
- Xint lp_best_char(eci, firstpos, alevel, min_prob)
- Xreg ecinfo *eci;
- Xint firstpos;
- Xfloat alevel; /* Level to accept a guess ~= prob(right)/prob(wrong) */
- Xfloat min_prob;
- X{
- X#if DEBUG
- X int pvec[BLOCKSIZE+1];
- X char str[BLOCKSIZE+1];
- X#endif
- X float total_score, score;
- X float best_score;
- X int best_char;
- Xreg int c;
- X int x,y;
- X int class;
- X float count;
- Xreg gsinfo *gsi;
- X gsinfo tmpgsi;
- X int gssbuf[BLOCKSIZE+1];
- X
- X gsi = &tmpgsi;
- X gsi_init(gsi, eci->plaintext, gssbuf);
- X
- X total_score = 0.0;
- X best_score = 0.0;
- X count = 0.0;
- X best_char = NONE;
- X
- X for (c = 0 ; c <= MAXCHAR ; c++) {
- X gsi_clear(gsi);
- X if (gsi_class_guess(gsi, eci, firstpos, c) == 0)
- X continue;
- X score = lp_cscore(gsi);
- X if (score > 0.0) {
- X count += 1.0;
- X total_score += score;
- X }
- X if (score > best_score) {
- X best_score = score;
- X best_char = c;
- X }
- X }
- X
- X#if DEBUG
- X printf("Total score is %7.4f", total_score);
- X printf(". Count is %4.0f.\n", count);
- X#endif
- X if (total_score == 0.0 || count == 0.0 || best_char == NONE) {
- X#if DEBUG
- X printf("NO GUESSES\n");
- X#endif
- X return(NONE);
- X }
- X#if DEBUG
- X printf("Best score is %7.4f", best_score);
- X printf(", which is %7.4f fraction of total", best_score/total_score);
- X printf(".\n");
- X
- X class = eci->posclass[firstpos];
- X printf("Class reliability is %d.",
- X (2 * eci->classlist[class].npairs) + eci->classlist[class].nchars);
- X printf(" ");
- X
- X decode_class(eci, firstpos, best_char, pvec);
- X pvec2str(str, pvec);
- X printf("The best chars are '%s'\n", str);
- X#endif
- X
- X if ((best_score > alevel * (total_score - best_score))
- X && (best_score > min_prob)) {
- X return(best_char);
- X }
- X else {
- X return(NONE);
- X }
- X}
- X
- X
- X/* Accept a guess.
- X * Updates the eci plaintext to reflect the characters deduced from
- X * assuming that the plaintext character at position pos is pchar.
- X * It updates the npairs count and used flag in the class info list.
- X * The changed flag is set for positions pos-1 and pos+1 (if they exist).
- X * The used flag is set for the class(es) that now have an accepted value.
- X */
- Xlp_accept(eci, firstpos, firstpchar)
- Xreg ecinfo *eci;
- Xint firstpos;
- Xint firstpchar;
- X{
- X int firstflag; /* For macro for_pos_in_class. */
- X int otherpos;
- Xreg int pos;
- X int x,y;
- X int pchar;
- X int delta;
- X clinfo *firstclassp, *otherclassp;
- Xreg clinfo *classp;
- X
- X firstpos = firstpos & MODMASK;
- X firstpchar = firstpchar & CHARMASK;
- X x = eci->scipher[firstpos];
- X y = MODMASK & (firstpchar + firstpos);
- X
- X eci->perm[x] = y;
- X eci->perm[y] = x;
- X
- X firstclassp = &(eci->classlist[eci->posclass[firstpos]]);
- X firstclassp->used = TRUE;
- X
- X otherpos = eci->permmap[y];
- X if (otherpos == NONE) {
- X otherclassp = NULL;
- X }
- X else {
- X otherclassp = &(eci->classlist[eci->posclass[otherpos]]);
- X otherclassp->used = TRUE;
- X }
- X
- X
- X delta = y - x;
- X for_pos_in_class(pos, firstpos) {
- X pchar = MODMASK & (eci->scipher[pos] + delta - pos);
- X eci->plaintext[pos] = pchar;
- X if ((pos - 1) >= 0) {
- X classp = &(eci->classlist[eci->posclass[pos - 1]]);
- X if (classp != firstclassp) {
- X classp->changed = TRUE;
- X classp->npairs++;
- X }
- X }
- X if ((pos + 1) < BLOCKSIZE) {
- X classp = &(eci->classlist[eci->posclass[pos + 1]]);
- X if (classp != firstclassp) {
- X classp->changed = TRUE;
- X classp->npairs++;
- X }
- X }
- X }
- X
- X if (otherpos != NONE) {
- X delta = x - y;
- X for_pos_in_class(pos, otherpos) {
- X pchar = MODMASK & (eci->scipher[pos] + delta - pos);
- X eci->plaintext[pos] = pchar;
- X if ((pos - 1) >= 0) {
- X classp = &(eci->classlist[eci->posclass[pos - 1]]);
- X if (classp != otherclassp) {
- X classp->changed = TRUE;
- X classp->npairs++;
- X }
- X }
- X if ((pos + 1) < BLOCKSIZE) {
- X classp = &(eci->classlist[eci->posclass[pos + 1]]);
- X if (classp != otherclassp) {
- X classp->changed = TRUE;
- X classp->npairs++;
- X }
- X }
- X }
- X }
- X}
- X
- X
- X
- X/* Pick the best position to do guessing.
- X * Use the class info list to select the unused class that will yield
- X * the most reliable guesses.
- X * The changed flag is cleared to make sure that a class is not considered
- X * again unless the reliability of its guesses has changed.
- X * At first, all the changed flags should be set.
- X * The changed flag for the selected class is cleared.
- X * Returns a position or NONE.
- X */
- Xint lp_best_pos(eci, min_reliability)
- Xreg ecinfo *eci;
- Xint min_reliability;
- X{
- X int score;
- X int best_score, best_pos;
- Xreg clinfo *classp;
- Xreg clinfo *endclassp;
- X
- X best_score = 0;
- X best_pos = NONE;
- X endclassp = &(eci->classlist[eci->nclasses]);
- X for (classp = &(eci->classlist[0]) ; classp < endclassp ; classp++) {
- X if ((classp->used) || (!(classp->changed)))
- X continue;
- X score = (2 * (classp->npairs)) + classp->nchars;
- X if (score > best_score) {
- X best_score = score;
- X best_pos = classp->firstpos;
- X }
- X }
- X if (best_score < min_reliability)
- X return(NONE);
- X
- X if (best_pos != NONE) {
- X eci->classlist[eci->posclass[best_pos]].changed = FALSE;
- X }
- X return(best_pos);
- X}
- X
- X
- X/* Fill in equiv class info from given ciphertext block
- X * and permutation.
- X */
- Xlp_init(cipher, perm, eci)
- Xchar cipher[];
- Xint perm[];
- Xreg ecinfo *eci;
- X{
- X int firstflag; /* Used by for_pos_in_class */
- X int i,j;
- X int firstpos, char_count, pair_count;
- Xreg int pos;
- Xreg clinfo *class;
- X
- X ec_init(cipher, perm, eci);
- X
- X for (i = 0 ; i < BLOCKSIZE ; i++) {
- X eci->posclass[i] = NONE;
- X }
- X
- X eci->nclasses = 0;
- X for (i = 0 ; i < BLOCKSIZE ; i++) {
- X if ((firstpos = eci->permmap[i]) == NONE)
- X continue;
- X char_count = 0;
- X pair_count = 0;
- X for_pos_in_class(pos, firstpos) {
- X eci->posclass[pos] = eci->nclasses;
- X char_count++;
- X }
- X for_pos_in_class(pos, firstpos) {
- X if ((pos + 1) < BLOCKSIZE) {
- X if (eci->posclass[pos + 1] == eci->nclasses) {
- X pair_count++;
- X }
- X else if (eci->perm[eci->scipher[pos + 1]] != NONE) {
- X pair_count++;
- X }
- X }
- X if ((pos - 1) >= 0) {
- X if (eci->posclass[pos - 1] == eci->nclasses) {
- X /* Don't double count it. */
- X }
- X else if (eci->perm[eci->scipher[pos - 1]] != NONE) {
- X pair_count++;
- X }
- X }
- X }
- X class = &(eci->classlist[eci->nclasses]);
- X class->nchars = char_count;
- X class->npairs = pair_count;
- X class->firstpos = firstpos;
- X class->changed = TRUE;
- X if (eci->perm[i] != NONE)
- X class->used = TRUE;
- X else
- X class->used = FALSE;
- X
- X eci->nclasses++;
- X }
- X}
- X
- X
- X/* Initialize a guess info structure.
- X * Also clears the guess buffer.
- X */
- Xgsi_init(gsi, pbuf, gssbuf)
- Xreg gsinfo *gsi;
- X int *pbuf; /* Accepted characters. */
- Xreg int *gssbuf; /* Buffer for new guesses. */
- X{
- Xreg int i;
- X
- X gsi->cknown = pbuf;
- X gsi->cpos[0] = NONE;
- X gsi->cguessed = gssbuf;
- X for (i = 0 ; i < BLOCKSIZE ; i++)
- X *gssbuf++ = NONE;
- X}
- X
- X
- X/* Clear out a guess from a gsi.
- X */
- Xgsi_clear(gsi)
- Xreg gsinfo *gsi;
- X{
- Xreg int *ip;
- X
- X for (ip = &(gsi->cpos[0]) ; *ip != NONE ; ip++) {
- X gsi->cguessed[*ip] = NONE;
- X }
- X gsi->cpos[0] = NONE;
- X}
- X
- X
- X/* Add to a gsi with the characters deduced from assuming that
- X * the character at firstpos is c.
- X * If that asumption conflicts with eci->perm, then nothing is added.
- X * Returns the number of characters added.
- X */
- Xint gsi_class_guess(gsi, eci, firstpos, c)
- Xreg gsinfo *gsi;
- Xreg ecinfo *eci;
- X int firstpos;
- X int c;
- X{
- X int firstflag; /* For macro for_pos_in_class. */
- X int otherpos;
- Xreg int pos;
- X int x,y;
- X int pchar;
- X int delta;
- X int *cposp;
- X int nchars;
- X
- X for (cposp = &(gsi->cpos[0]) ; *cposp != NONE ; cposp++);
- X nchars = 0;
- X
- X firstpos = firstpos & MODMASK;
- X c = c & CHARMASK;
- X x = eci->scipher[firstpos];
- X y = MODMASK & (c + firstpos);
- X
- X if (perm_conflict(eci->perm, x, y))
- X return(nchars);
- X
- X delta = y - x;
- X for_pos_in_class(pos, firstpos) {
- X pchar = MODMASK & (eci->scipher[pos] + delta - pos);
- X if ((pchar & CHARMASK) != pchar) {
- X *cposp = NONE;
- X return(0);
- X }
- X gsi->cguessed[pos] = pchar;
- X *cposp++ = pos;
- X nchars++;
- X }
- X
- X otherpos = eci->permmap[y];
- X if (otherpos != NONE) {
- X delta = x - y;
- X for_pos_in_class(pos, otherpos) {
- X pchar = MODMASK & (eci->scipher[pos] + delta - pos);
- X if ((pchar & CHARMASK) != pchar) {
- X *cposp = NONE;
- X return(0);
- X }
- X gsi->cguessed[pos] = pchar;
- X *cposp++ = pos;
- X nchars++;
- X }
- X }
- X *cposp = NONE;
- X return(nchars);
- X}
- X
- X
- X/* Dump class table onto a stream.
- X */
- Xlp_dclasses(out, eci)
- XFILE *out;
- Xecinfo *eci;
- X{
- X int i;
- X
- X fprintf(out, "\nThere are %d classes.\n", eci->nclasses);
- X for (i = 0 ; i < eci->nclasses ; i++) {
- X fprintf(out, "Singles: %d, pairs: %d, First member: %d",
- X eci->classlist[i].nchars, eci->classlist[i].npairs,
- X eci->classlist[i].firstpos);
- X fprintf(out, ", flags:");
- X if (!(eci->classlist[i].used))
- X fprintf(out, " not");
- X fprintf(out, " used");
- X fprintf(out, " and");
- X if (!(eci->classlist[i].changed))
- X fprintf(out, " not");
- X fprintf(out, " changed");
- X fprintf(out, "\n");
- X }
- X}
- X
- X
- END_OF_lpair.c
- if test 14095 -ne `wc -c <lpair.c`; then
- echo shar: \"lpair.c\" unpacked with wrong size!
- fi
- # end of overwriting check
- fi
- if test -f test1.perm -a "${1}" != "-c" ; then
- echo shar: Will not over-write existing file \"test1.perm\"
- else
- echo shar: Extracting \"test1.perm\" \(16800 characters\)
- sed "s/^X//" >test1.perm <<'END_OF_test1.perm'
- X -1 -1 116 150 159 64 -1 -1 200 232
- X -1 -1 63 -1 -1 95 -1 254 -1 8
- X -1 -1 123 117 243 210 179 -1 119 17
- X -1 46 -1 203 -1 12 -1 -1 -1 71
- X -1 -1 204 -1 -1 -1 -1 -1 -1 -1
- X 74 -1 202 -1 11 81 67 -1 141 213
- X 66 94 -1 217 29 154 3 -1 -1 -1
- X -1 -1 -1 93 -1 -1 -1 -1 173 -1
- X -1 -1 -1 196 4 -1 -1 -1 70 -1
- X -1 252 41 43 -1 -1 48 61 -1 38
- X 20 -1 166 208 -1 -1 -1 -1 5 -1
- X -1 130 -1 -1 207 -1 227 190 -1 125
- X -1 -1 -1 -1 -1 -1 51 120 -1 13
- X139 -1 127 246 248 18 -1 -1 136 167
- X -1 113 -1 -1 244 114 -1 198 201 189
- X144 22 140 -1 109 83 131 180 -1 -1
- X -1 50 250 -1 37 -1 -1 242 23 214
- X -1 112 -1 -1 -1 233 -1 161 188 104
- X -1 103 -1 -1 89 80 -1 -1 19 85
- X192 147 -1 65 199 -1 247 245 -1 60
- X -1 102 -1 88 224 -1 -1 45 -1 -1
- X -1 -1 -1 215 230 -1 -1 -1 -1 -1
- X -1 251 -1 14 -1 -1 -1 87 -1 73
- X158 -1 110 168 -1 152 197 108 133 148
- X -1 -1 184 240 100 -1 111 170 183 -1
- X 42 10 218 82 -1 -1
- X 96 114 124 223 97 19 -1 13 43 -1
- X -1 38 231 7 200 207 179 134 133 5
- X100 -1 48 160 152 93 162 168 191 127
- X -1 103 183 -1 252 193 243 242 11 180
- X 87 173 154 8 -1 -1 112 -1 22 -1
- X199 95 -1 66 163 62 128 190 -1 79
- X215 109 55 245 73 -1 53 178 214 82
- X201 138 206 64 240 182 228 -1 -1 59
- X197 248 69 203 175 111 -1 40 -1 139
- X -1 195 -1 25 217 51 0 4 251 -1
- X 20 -1 148 31 227 234 167 202 -1 61
- X219 85 46 246 1 135 142 254 211 -1
- X144 -1 -1 218 2 150 186 29 56 169
- X185 247 164 18 17 115 250 -1 71 89
- X -1 205 116 222 120 -1 226 158 102 189
- X125 -1 24 -1 42 159 221 188 147 155
- X 23 210 26 54 132 -1 184 106 27 129
- X -1 196 253 41 204 84 238 235 67 16
- X 39 192 75 32 166 130 126 224 157 149
- X 57 28 181 35 241 91 171 80 208 50
- X 14 70 107 83 174 141 72 15 198 233
- X161 118 -1 244 68 60 -1 94 123 110
- X237 156 143 3 187 -1 146 104 76 239
- X -1 12 -1 209 105 177 -1 220 176 229
- X 74 194 37 36 213 63 113 131 81 -1
- X136 98 34 172 117 -1
- X -1 122 -1 119 71 229 -1 28 223 -1
- X215 -1 197 -1 82 126 237 23 87 93
- X -1 -1 252 17 -1 177 137 -1 7 -1
- X -1 171 -1 155 -1 -1 -1 60 -1 -1
- X -1 152 -1 -1 -1 -1 241 -1 142 -1
- X243 69 -1 -1 99 134 -1 -1 -1 144
- X 37 63 -1 61 -1 250 173 114 -1 51
- X -1 4 73 72 -1 168 211 -1 92 169
- X176 166 14 -1 -1 -1 -1 18 148 117
- X129 -1 78 19 110 -1 151 154 101 54
- X244 98 242 147 227 -1 -1 -1 188 254
- X 94 217 170 251 67 231 179 89 -1 3
- X -1 -1 1 183 -1 209 15 150 -1 90
- X184 159 -1 141 55 238 -1 26 162 -1
- X245 133 48 -1 59 -1 -1 103 88 -1
- X127 96 41 186 97 33 -1 219 -1 131
- X187 194 138 -1 167 -1 81 164 75 79
- X112 31 178 66 -1 -1 80 25 172 116
- X -1 -1 -1 123 130 236 153 160 108 246
- X192 -1 190 -1 161 -1 -1 12 200 213
- X198 239 248 -1 -1 -1 -1 -1 247 125
- X -1 76 -1 199 -1 10 -1 111 233 157
- X -1 -1 -1 8 -1 -1 -1 104 240 5
- X -1 115 -1 218 -1 -1 185 16 135 201
- X228 46 102 50 100 140 189 208 202 -1
- X 65 113 22 -1 109 -1
- X 90 49 26 132 156 140 212 -1 147 -1
- X198 54 97 148 38 79 25 154 80 -1
- X214 -1 248 184 161 16 2 107 66 168
- X 33 112 195 30 166 236 65 155 14 84
- X222 -1 123 53 136 -1 69 -1 218 1
- X125 243 134 43 11 102 145 126 238 194
- X 78 232 138 246 224 36 28 -1 150 46
- X130 215 120 188 119 105 231 209 60 15
- X 18 87 -1 176 39 160 -1 81 159 158
- X 0 151 235 192 183 200 -1 12 174 101
- X -1 99 55 196 207 75 -1 27 -1 187
- X163 242 31 230 254 205 179 190 -1 74
- X 72 233 -1 42 241 50 57 228 142 -1
- X 70 -1 3 149 52 227 44 220 62 245
- X 5 221 128 186 244 56 -1 8 13 133
- X 68 91 197 165 17 37 4 -1 89 88
- X 85 24 193 110 199 153 34 201 29 255
- X -1 247 226 -1 98 252 83 -1 237 116
- X -1 191 -1 94 23 -1 143 109 73 219
- X117 181 93 162 59 32 103 152 10 164
- X 95 167 250 239 -1 115 -1 104 217 77
- X -1 -1 6 251 20 71 -1 208 48 189
- X137 141 40 253 64 -1 172 135 127 -1
- X113 76 61 121 -1 92 35 178 58 203
- X -1 124 111 51 144 139 63 171 22 -1
- X202 213 175 223 114 169
- X 60 -1 26 -1 203 204 122 -1 15 97
- X -1 -1 133 -1 159 8 -1 145 27 191
- X192 -1 250 117 -1 183 2 18 50 65
- X218 -1 143 -1 -1 -1 -1 93 -1 -1
- X -1 199 -1 171 -1 74 -1 -1 -1 -1
- X 28 -1 162 -1 -1 227 -1 -1 -1 221
- X 0 248 -1 103 233 29 140 95 170 -1
- X -1 -1 137 190 45 -1 -1 -1 -1 -1
- X -1 -1 -1 181 -1 94 -1 104 111 -1
- X198 -1 -1 37 85 67 252 9 231 223
- X169 -1 -1 63 87 -1 -1 -1 152 -1
- X201 88 180 -1 179 118 -1 23 115 161
- X247 -1 6 -1 187 -1 -1 240 241 239
- X197 207 -1 12 151 185 -1 72 -1 148
- X 66 214 -1 32 150 17 254 251 139 -1
- X144 134 108 -1 -1 -1 -1 172 173 14
- X -1 119 52 -1 -1 -1 208 246 242 100
- X 68 43 157 158 -1 -1 -1 -1 229 114
- X112 83 -1 25 230 135 -1 124 -1 -1
- X 73 19 20 -1 -1 -1 -1 130 90 41
- X210 110 -1 4 5 244 211 131 166 219
- X200 206 220 -1 141 -1 -1 -1 30 209
- X212 59 -1 99 232 -1 -1 55 -1 178
- X184 98 224 64 -1 236 235 -1 -1 129
- X127 128 168 249 205 -1 167 120 61 243
- X 22 147 96 -1 146 -1
- X -1 -1 -1 150 223 175 -1 -1 25 204
- X -1 122 181 198 -1 56 -1 -1 202 67
- X -1 -1 49 168 -1 8 145 -1 177 -1
- X 32 211 30 84 57 238 -1 83 217 -1
- X160 -1 108 89 -1 -1 228 225 -1 22
- X207 176 -1 -1 -1 -1 15 34 169 219
- X152 189 107 -1 193 123 95 19 -1 -1
- X -1 253 -1 164 -1 -1 -1 -1 230 -1
- X -1 -1 209 37 33 -1 205 213 -1 43
- X220 -1 194 -1 -1 66 -1 134 -1 -1
- X190 -1 103 102 -1 -1 -1 62 42 240
- X116 236 115 -1 156 112 110 229 -1 -1
- X131 149 11 65 -1 -1 140 196 -1 -1
- X239 120 243 139 97 -1 154 174 -1 133
- X126 -1 -1 -1 -1 26 182 -1 232 121
- X 3 162 60 -1 136 192 114 171 -1 185
- X 40 -1 151 -1 73 -1 -1 233 23 58
- X197 157 -1 -1 137 5 51 28 -1 227
- X -1 12 146 -1 -1 159 255 -1 -1 61
- X100 221 155 64 92 -1 127 170 13 -1
- X244 210 18 246 9 86 208 50 206 82
- X201 31 249 87 242 -1 -1 38 -1 59
- X 90 191 -1 4 -1 47 -1 179 46 117
- X 78 -1 148 167 -1 237 111 235 35 130
- X109 -1 214 132 200 -1 203 -1 -1 212
- X -1 -1 -1 71 -1 186
- X120 146 232 66 217 81 113 -1 144 239
- X 44 49 230 -1 166 60 151 218 34 -1
- X 80 128 193 249 -1 148 116 210 183 165
- X 94 -1 109 133 18 192 163 73 252 158
- X 61 -1 195 46 10 102 43 90 131 11
- X122 -1 135 172 -1 207 188 58 57 227
- X 15 40 77 99 143 138 3 231 226 136
- X221 -1 -1 37 253 104 -1 62 254 185
- X 20 5 -1 132 173 189 124 91 150 255
- X 47 87 212 184 30 -1 -1 149 187 63
- X178 -1 45 228 75 180 177 141 125 32
- X121 -1 -1 6 161 -1 26 244 224 137
- X 0 110 50 157 86 108 -1 156 21 147
- X238 48 83 33 240 52 69 119 65 175
- X -1 107 160 64 8 176 1 129 25 97
- X 88 16 225 -1 243 164 127 123 39 -1
- X142 114 -1 36 155 29 14 169 233 167
- X211 -1 53 84 -1 139 145 106 100 204
- X105 201 223 28 93 79 203 98 56 85
- X -1 251 35 22 205 42 -1 219 213 235
- X -1 181 222 186 179 194 -1 55 246 215
- X 27 170 92 198 -1 209 -1 4 17 197
- X -1 70 202 182 118 152 68 59 103 245
- X 12 67 2 168 -1 199 247 250 130 9
- X134 248 -1 154 117 229 208 236 241 23
- X237 191 38 74 78 89
- X -1 165 187 203 8 -1 -1 168 4 124
- X131 36 86 -1 -1 83 54 -1 -1 150
- X221 56 172 144 65 218 42 33 109 252
- X 58 93 160 27 115 214 11 -1 40 117
- X 38 -1 26 126 228 94 247 152 235 232
- X -1 181 87 -1 16 108 21 138 30 147
- X 66 222 250 84 174 24 60 199 116 90
- X170 245 239 242 213 118 -1 224 209 -1
- X -1 151 98 15 63 193 12 52 -1 -1
- X 69 99 169 31 45 217 156 104 82 91
- X185 -1 223 133 97 143 127 -1 55 28
- X114 -1 134 141 110 34 68 39 75 237
- X -1 179 -1 157 9 130 43 106 167 246
- X125 10 176 103 112 255 251 142 57 200
- X155 113 137 105 23 177 173 59 192 189
- X 19 81 47 161 -1 140 96 123 -1 -1
- X 32 153 220 -1 -1 1 190 128 7 92
- X 70 186 22 146 64 233 132 145 231 121
- X254 51 -1 216 210 100 171 2 -1 149
- X166 198 148 85 206 -1 208 249 191 67
- X139 207 -1 3 241 -1 194 201 196 78
- X184 -1 244 74 35 238 183 95 25 230
- X162 20 61 102 77 -1 236 -1 44 -1
- X219 178 49 175 -1 48 226 119 215 72
- X -1 204 73 -1 212 71 129 46 -1 197
- X 62 136 29 -1 180 135
- X -1 78 -1 188 184 32 151 236 130 16
- X 57 -1 209 240 213 63 9 157 123 84
- X147 -1 172 219 224 242 49 53 220 -1
- X146 196 5 66 231 254 179 -1 210 197
- X227 74 112 -1 160 204 69 193 158 26
- X 59 -1 65 27 77 142 194 10 141 50
- X199 207 -1 15 91 52 33 155 191 46
- X -1 -1 252 -1 41 202 144 54 1 -1
- X100 189 140 103 19 89 234 97 247 85
- X -1 64 -1 225 162 153 206 87 120 104
- X 80 248 117 83 99 124 134 177 135 118
- X -1 119 42 164 148 139 183 102 109 111
- X 98 241 208 18 105 175 192 -1 176 -1
- X 8 235 205 198 106 108 -1 182 221 115
- X 82 58 55 253 76 232 30 20 114 -1
- X168 6 -1 95 -1 67 251 17 48 222
- X 44 -1 94 171 113 174 -1 229 150 -1
- X -1 163 22 201 165 125 128 107 -1 36
- X195 238 137 116 4 203 -1 250 3 81
- X239 68 126 47 56 180 31 39 133 60
- X211 173 75 185 45 132 96 61 122 12
- X 38 200 -1 14 -1 218 255 244 215 23
- X 28 138 159 246 24 93 -1 40 -1 167
- X -1 34 145 -1 86 131 7 -1 181 190
- X 13 121 25 -1 217 249 223 88 101 245
- X187 156 72 143 35 216
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- X -1 -1 -1 -1 -1 -1
- END_OF_test1.perm
- if test 16800 -ne `wc -c <test1.perm`; then
- echo shar: \"test1.perm\" unpacked with wrong size!
- fi
- # end of overwriting check
- fi
- echo shar: End of archive 6 \(of 11\).
- cp /dev/null ark6isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 11 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-